﻿
#include "Scene0913.h"
#include "SimpleAudioEngine.h"
#include "Util.h"

Scene* Scene0913::createScene()
{
	return Scene0913::create();
}

bool Scene0913::init()
{
	if (!Scene::init())
	{
		return false;
	}

	Sprite* background = Sprite::create("res/background.jpg");
	background->setPosition(VISIBLE_SIZE / 2);
	//background->setScale(VISIBLE_SIZE.width / background->getContentSize().width, VISIBLE_SIZE.height / background->getContentSize().height)
	background->setScale(VISIBLE_SIZE.height / background->getContentSize().height);
	addChild(background);


	self_pos = 3; //假设自己坐在3号椅子上

	//创建4个玩家
	for (int  position = 1; position <= 4; position++)
	{
		Player* player = new Player();
		player->account = StringUtils::format("playerplayer%d", position);
		player->avatar = "default";
		player->position = position;

		loadPlayerUI(player);
	}

	return true;
}

//s 表示 self 自己
//l 表示 left 上家
//r 表示 right 下家
//f 表示 front 对家
char Scene0913::getPlayerCharPosition(int pos) {
	if (self_pos == 1) { //自己坐在1上
		if (pos == 2) return 'r';//则2在右边
		if (pos == 3) return 'f';//3在对面
		if (pos == 4) return 'l';//4在左边
	}
	else if (self_pos == 2) {
		if (pos == 1) return 'l';
		if (pos == 3) return 'r';
		if (pos == 4) return 'f';
	}
	else if (self_pos == 3) {
		if (pos == 1) return 'f';
		if (pos == 2) return 'l';
		if (pos == 4) return 'r';
	}
	else if (self_pos == 4) {
		if (pos == 1) return 'r';
		if (pos == 2) return 'f';
		if (pos == 3) return 'l';
	}

	/*
	int result = pos % self_pos;
	switch (result)
	{
	case 0:
		return 's';
	case 1:
		return 'r';
	case 2:
		return 'f';
	case 3:
		return 'l';
	}
	*/

	return 's';
}

void  Scene0913::loadPlayerUI(Player* player) {
	//将int的椅子号，转换为相对我所在的位置
	char pos_char = getPlayerCharPosition(player->position);
	//log("position: %c", pos_char);
	player->pos_char = pos_char;

	//创建玩家节点
	player->createPlayerNode();
	//将该玩家节点加入到场景中
	addChild(player->node);
}


//9.14课堂练习
//1、创建一个场景，具有一张表格（房间），可以点击进入房间
//2、第二个场景，房间场景，刚进去只显示自己
//3、添加一个按钮（添加玩家），每添加一次，房间里面出现一个玩家
//4、当玩家坐满时，按钮消失，变成准备按钮